# Logo indexing

After upload all logos of a specific customer are stored within a certain directory inside the CIFS share.

At this point all logo semantics are represented by their filesystem location.

# processCustomer / pentaho

The main process is implemented using the low-code platform pentaho (aka kettle), installed at bisrv1 (on LAN). Its only parameter is the customer ID (cardCode). Once invoked it gathers all possible customer logos by traversing the CIFS filesystem. It additionally queries the CRM database for shop events containing logos (no decoupling yet).

# Synchronised invocation of processCustomer

Pentaho processes are asynchronous jobs. The renovation of the complete processCustomer job had to forfill these requirements:

  • No parallel invocation of processCustomer for the same customer.
  • User feedback about the current process state and result.

Since this cannot be implemented easily in pentaho an API service exist as a proxy / flyweight between the applications and pentaho:

# CardJobAPI

  • GIT:
    ssh://git@gifham017.local.giffits.de:7999/mic/cardjobapi.git
  • Deployment:
    Via Bamboo as docker container cardjobapi on GIFHAM006.
  • Base URL:
    http://giffits.local.giffits.de:8583

# Endpoints:

Method: GET

  • /state/cardcode/CARDCODE
    Returns JSON containing details about CARDCODE,
    including state of a possibly still running process.
  • /state/cardcode/jobid/JOBID
    Returns JSON containing details about pentaho job
    identified by JOBID, including state of a possibly still running process.
  • /cardcode/process/CARDCODE
    Starts a new processCardcode run, but only if it isn't running yet. Returns JSON containing details about pentaho job.

All endpoints allow for an additional GET parameter:

  • ?fullLog=1 JSON contains the full log output from pentaho.

# CardJobAPI consumers

  • GVV
  • Docky

Planned:

  • GVV/external
  • Docky/external
Page Info: Created by GitHub on Jun 9, 2023 (last updated a minute ago by GitHub)